home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 2 / Atari Forever 2.zip / Atari Forever 2.iso / serie_p / p_2309 / pd_farbt.gfa (.txt) < prev    next >
GFA-BASIC Atari  |  1991-11-24  |  79KB  |  1,192 lines

  1. IF FRE(0)<40000
  2.   ALERT 1,"Sorry,|brauch mind 80 kB RAM ",1," nun gut ",v0_0#
  3.   SYSTEM
  4. ENDIF
  5. CLS
  6. SETMOUSE 1,1
  7. HIDEM
  8. PRINT CHR$(27)+"w"
  9. v2_19%=XBIOS(3)
  10. ' ##################################### AB1
  11. DIM v5_9$(201)
  12. DIM v5_0$(200,19)
  13. DIM v4_0#(42)
  14. DIM v5_1$(22)
  15. DIM v5_2$(22)
  16. DIM v5_3$(22)
  17. DIM v5_4$(10)
  18. DIM v4_1#(10)
  19. WHILE LEN(INKEY$)>0
  20. WEND
  21. v1_0$=".......DAT"
  22. ' ''''''''
  23. DEFFILL 0
  24. BOX 3,13,634,196
  25. BOX 3,1,634,196
  26. DEFTEXT 1,2,0,6
  27. TEXT 32,10,"["+STRING$(65,".")+"]"+"In"
  28. SOUND 1,15,2*2,3,8
  29. SOUND 1,15,2*(3),3,15
  30. WAVE 7,7,0,0,0
  31. ' ''''''''''''''''''''''
  32. ' GOSUB einlesen
  33. PRINT AT(10,10);"PD_FARBTEXT, ein tolles Programm von"
  34. PRINT AT(10,12);"C. v. Keitz, Am Stein 14, 6108 Weiterstadt 3"
  35. PRINT AT(10,14);"GFA 3 Basic Code für nur 20,-- DM !"
  36. ' '''''''''''''''''''''''''''''''
  37. '                      ! Druckerparameter
  38. DIM v5_B$(25)
  39. v1_10$="\STANDARD.PRT"
  40. v1_4A$="STANDARD"
  41. IF EXIST(v1_10$)
  42.   OPEN "I",#1,v1_10$
  43.   RECALL #1,v5_B$(),14,v0_59#
  44.   CLOSE
  45. ENDIF
  46. ' '''
  47. ' FOR i=1 TO 3
  48. ' NEXT i
  49. SOUND 1,15,2*-2,3,8
  50. SOUND 1,15,2*(-3),3,15
  51. WAVE 7,7,0,0,0
  52. PAUSE 150
  53. PRINT CHR$(7);
  54. PAUSE 15
  55. WAVE 7,7,0,0,0
  56. PBOX 15,14,630,194
  57. ' ''''''''''''''''''''''''''''''''
  58. v0_1#=FRE(0)
  59. v0_2#=INT(v0_1#/10000)*100-650
  60. DEFFILL 0
  61. ' BOX 3,28,634,392
  62. ' BOX 3,5,634,392
  63. ' BOX 3,3,634,196
  64. DIM v5_5$(72)
  65. DIM v5_6$(v0_2#)
  66. DIM v5_7$(v0_2#)
  67. DIM v4_2#(2000)
  68. DIM v5_C$(66)
  69. DIM v5_8$(30)
  70. GET 8*v2_0%+32,(8*(v2_1%)+16),8*v2_0%+39,8*(v2_1%)+23,v1_1$
  71. PUT 8*v2_0%+32,(8*(v2_1%)+16),v1_1$,10
  72. GET 150,330,390,196,v1_2$
  73. v0_3#=65
  74. v2_2%=35
  75. DEFTEXT 1,2,0,6
  76. v0_4#=1
  77. v1_3$="Insert - mode"
  78. TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+LEFT$(v1_3$,2)
  79. DO
  80.   HIDEM
  81. vA_0:
  82.   @vB_1
  83.   @vB_2
  84. LOOP
  85. PROCEDURE vB_2
  86.   '
  87.   IF v2_0%<=-1
  88.     v2_0%=0
  89.     PRINT AT(4,v2_1%+3);" ";
  90.     GET 8*v2_0%+32,(8*(v2_1%)+16),8*v2_0%+39,8*(v2_1%)+23,v1_1$
  91.     PUT 8*v2_0%+32,(8*(v2_1%)+16),v1_1$,12
  92.   ENDIF
  93.   '
  94.   v5_5$(v2_0%)=""
  95.   WHILE v5_5$(v2_0%)=""
  96.     ' ---------------
  97.     GET 8*v2_0%+32,(8*(v2_1%)+16),8*v2_0%+39,8*(v2_1%)+23,v1_1$
  98.     FOR v0_5#=1 TO 2150
  99.       v5_5$(v2_0%)=INKEY$
  100.       EXIT IF v5_5$(v2_0%)<>""
  101.     NEXT v0_5#
  102.     PRINT AT(5+v2_0%,v2_1%+3);" ";
  103.     PUT 8*v2_0%+32,(8*(v2_1%)+16),v1_1$,12
  104.     FOR v0_5#=1 TO 880
  105.       IF v5_5$(v2_0%)=""
  106.         v5_5$(v2_0%)=INKEY$
  107.       ENDIF
  108.       EXIT IF v5_5$(v2_0%)<>""
  109.     NEXT v0_5#
  110.     PUT 8*v2_0%+32,(8*(v2_1%)+16),v1_1$
  111.     ' --------------
  112.     IF v5_5$(v2_0%)=""
  113.       v5_5$(v2_0%)=INKEY$
  114.     ENDIF
  115.   WEND
  116.   v1_4$=v5_5$(v2_0%)+" "
  117.   v0_6#=CVI(v1_4$)
  118.   '  PRINT AT(1,1);cv,CVI(a$(u%))
  119.   IF v0_6#<8400 AND v0_6#>0 AND v5_5$(v2_0%)<>" " OR v0_6#=32544 OR v5_5$(v2_0%)=CHR$(13)
  120.     '   PRINT AT(1,1);cv,CVI(a$(u%))
  121.     @vB_3
  122.     WHILE LEN(INKEY$)>0
  123.     WEND
  124.     v0_7#=0
  125.   ELSE
  126.     @vB_4(v2_3%)
  127.     IF v0_4#=0 AND v2_0%<v0_3#+1 THEN
  128.       IF v2_0%+2*v0_7#<LEN(v5_6$(v2_3%))
  129.         v1_5$=MID$(v5_6$(v2_3%),(v2_0%+2*v0_7#)+2)
  130.       ENDIF
  131.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+v5_5$(v2_0%)+v1_5$
  132.       v1_5$=""
  133.     ELSE
  134.       ' ''''''''''''''''''''''''''
  135.       IF v2_0%+2*v0_7#<LEN(v5_6$(v2_3%))
  136.         v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#))
  137.       ENDIF
  138.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+v5_5$(v2_0%)+v1_5$
  139.       v1_5$=""
  140.       IF v2_0%+2*v0_7#=>v0_3#+1+2*v0_7# AND v5_5$(v2_0%)<>""  !And A$(U%)<>" "
  141.         ' -----------------
  142.         IF v5_5$(v2_0%)=" " AND v2_0%+2*v0_7#<=v0_3#+1+2*v0_7# THEN
  143.           IF LEN(v5_6$(v2_3%))=>v0_3#+1+2*v0_8# AND RIGHT$(v5_6$(v2_3%),2)="  "
  144.             v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-1)
  145.           ENDIF
  146.           IF LEN(v5_6$(v2_3%))=>v0_3#+1+2*v0_8# AND RIGHT$(v5_6$(v2_3%),3)=" Ç"
  147.             v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-3)+"Ç"
  148.           ENDIF
  149.           PRINT AT(v0_3#+5+1,v2_1%+3);"  ";
  150.           v5_5$(v2_0%)=""
  151.           v0_9#=0
  152.           GOTO vA_1
  153.         ENDIF
  154.         ' --------------------
  155.         IF LEN(v5_6$(v2_3%))<=v0_3#+2+2*v0_7#
  156.           @vB_5
  157.         ELSE
  158.           v0_A#=0
  159.           IF v5_5$(v2_0%)<>" "
  160.             PRINT AT(5+v0_3#,v2_1%+3);" ";
  161.             @vB_6
  162.             v2_3%=v2_3%-1
  163.             v2_1%=v2_1%-1
  164.           ELSE
  165.             v0_A#=1
  166.           ENDIF
  167.         ENDIF
  168.         '        A$(U%)=""
  169.         @vB_7
  170.         IF v2_1%>=21
  171.           '          Rue=1
  172.           @vB_8
  173.           PRINT AT(5,v2_1%+4);LEFT$(v5_6$(v2_3%+1),72+2*v0_7#);
  174.           PRINT AT(5,25);SPC(74);
  175.           v0_13#=0
  176.           LINE 5,196,634,196
  177.           LINE 3,196,634,196
  178.           @vB_9(v2_3%,v2_1%)
  179.         ENDIF
  180.         IF v0_A#=0
  181.           ADD v2_3%,1
  182.           ADD v2_1%,1
  183.         ENDIF
  184.         ' -----------
  185.         WHILE INSTR(v5_6$(v2_3%),"êÇ")
  186.           v0_B#=INSTR(v5_6$(v2_3%),"êÇ")
  187.           v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_B#-1)+TAN(v5_6$(v2_3%),v0_B#+4)
  188.           v2_0%=v2_0%-2
  189.         WEND
  190.         WHILE INSTR(v5_6$(v2_3%),"üÇ")
  191.           v0_B#=INSTR(v5_6$(v2_3%),"üÇ")
  192.           v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_B#-1)+MID$(v5_6$(v2_3%),v0_B#+4)
  193.           v2_0%=v2_0%-2
  194.         WEND
  195.         ' ----------
  196.       ENDIF
  197.       ' ''''''''''''''''''''''''''''
  198.     ENDIF
  199.     IF LEN(v5_6$(v2_3%))>v0_3#+1
  200.       @vB_A(v5_6$(v2_3%))
  201.     ENDIF
  202.     IF LEN(v5_6$(v2_3%))>v0_3#+1+2*v0_8# AND v2_0%<v0_3#+1 AND RIGHT$(v5_6$(v2_3%),2)="  " AND v0_4#=1
  203.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-1)
  204.       PRINT AT(v0_3#+5,v2_1%+3);"  ";
  205.     ENDIF
  206.     ' ''''''''''''''
  207.     IF LEN(v5_6$(v2_3%))>v0_3#+1+2*v0_8# AND v2_0%<v0_3#+1 AND RIGHT$(v5_6$(v2_3%),3)=" Ç" AND v0_4#=1
  208.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-3)+"Ç"
  209.       PRINT AT(v0_3#+5,v2_1%+3);"  ";
  210.     ENDIF
  211.     ' '''''''''''''
  212.     IF LEN(v5_6$(v2_3%))>v0_3#+1+2*v0_8# AND v2_0%<v0_3#+1 AND (INSTR(v5_6$(v2_3%)," ")=0 OR RIGHT$(v5_6$(v2_3%),1)=CHR$(174))
  213.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-1)
  214.       PRINT AT(v0_3#+5,v2_1%+3);"  ";
  215.     ENDIF
  216.     IF LEN(v5_6$(v2_3%))>v0_3#+1+2*v0_8# AND v2_0%<v0_3#+2 AND INSTR(v5_6$(v2_3%)," ") AND v0_4#=1
  217.       IF INSTR(v5_6$(v2_3%),CHR$(174))=0 THEN
  218.         v5_6$(v2_3%)=v5_6$(v2_3%)+" "
  219.       ENDIF
  220.       v5_6$(v2_3%+1)=" "+v5_6$(v2_3%+1)VARIAT(
  221.       v0_C#=v2_0%
  222.       v0_D#=v2_0%+2*v0_7#+1
  223.       WHILE v0_D#>0 AND MID$(v5_6$(v2_3%),v0_D#,1)<>" "
  224.         SUB v0_D#,1
  225.       WEND
  226.       v0_E#=v2_0%-v0_D#
  227.       @vB_5
  228.       v0_F#=v2_3%
  229.       v0_10#=v2_1%
  230.       IF v2_1%>=21
  231.         v0_11#=1
  232.         PRINT AT(5,25);SPC(74);
  233.         v0_13#=0
  234.         LINE 5,196,634,196
  235.         LINE 3,196,634,196
  236.         '        @Scrolldown
  237.         '        Print At(5,Y%+4);Left$(Zei$(Z%+1),72+2*X);
  238.         '        @Sauber(Z%,Y%)
  239.       ENDIF
  240.       ADD v2_3%,1
  241.       ADD v2_1%,1
  242.       v0_12#=1
  243.       @vB_17
  244.       @vB_B
  245.       v0_13#=1
  246.       @vB_A(v5_6$(v0_F#))
  247.       IF LEN(v5_6$(v0_F#))>=v0_C#+2*v0_8#
  248.         v2_0%=v0_C#
  249.         IF v2_0%>=LEN(v5_6$(v0_F#))-2*v0_8#
  250.           v2_0%=0
  251.           v2_3%=v0_F#+1
  252.           v2_1%=v0_10#+1
  253.         ELSE
  254.           v2_3%=v0_F#
  255.           v2_1%=v0_10#
  256.         ENDIF
  257.       ELSE
  258.         v2_3%=v0_F#+1
  259.         v2_1%=v0_10#+1
  260.         @vB_A(v5_6$(v0_F#))
  261.         v2_0%=v0_E#+2*v0_8#+v0_14#
  262.         IF RIGHT$(v5_6$(v0_F#),1)=CHR$(128)
  263.           v2_0%=v2_0%-2
  264.         ENDIF
  265.       ENDIF
  266.       @vB_C
  267.       IF v2_0%>0
  268.         v5_5$(v2_0%)=""
  269.       ENDIF
  270.       v0_11#=1
  271.     ENDIF
  272.     IF v2_0%<=-1
  273.       SUB v2_3%,1
  274.       SUB v2_1%,1
  275.       v5_6$(v2_3%)=v5_6$(v2_3%)+" "
  276.       v2_0%=LEN(v5_6$(v2_3%))-1
  277.       PRINT AT(5,v2_1%+3);SPC(72);
  278.       PRINT AT(5,v2_1%+3);LEFT$(v5_6$(v2_3%),72+2*v0_7#);
  279.       @vB_D(v2_3%,v2_1%)
  280.     ENDIF
  281.     PRINT AT(5+v2_0%,v2_1%+3);v5_5$(v2_0%);
  282.   vA_1:
  283.     ADD v2_0%,1
  284.     IF v2_0%=v0_3#+2
  285.       @vB_E(v2_3%)
  286.       v5_5$(v2_0%)=""
  287.       PRINT AT(v2_0%+5,v2_1%+3);" ";
  288.       ADD v2_3%,1
  289.       ADD v2_1%,1
  290.       v2_0%=0
  291.       IF INSTR(v5_6$(v2_3%),"י")=0
  292.         v5_6$(v2_3%)=v1_6$+v5_6$(v2_3%)
  293.       ENDIF
  294.       v0_11#=1
  295.     ENDIF
  296.     ' #######################
  297.     IF MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1)=CHR$(174)
  298.       TEXT 8*(v2_0%-2)+40,(8*v2_1%+22),MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1)
  299.       SUB v2_0%,1
  300.       v0_11#=1
  301.     ENDIF
  302.     ' #############
  303.     IF v0_11#=0 AND v0_4#=1
  304.       GET 8*(v2_0%-1)+40,(8*v2_1%+16),8*(v0_3#)+40,8*v2_1%+23,v1_1$
  305.       PUT 8*(v2_0%-1)+48,(8*v2_1%+16),v1_1$,3
  306.       PRINT AT(5+v2_0%,v2_1%+3);MID$(v5_6$(v2_3%),v2_0%+2*v0_7#+1,2)
  307.       DEFTEXT 1,v0_9#,0,6
  308.       TEXT 8*(v2_0%-2)+40,(8*v2_1%+22),MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1)
  309.     ENDIF
  310.     IF v2_0%=1
  311.       PRINT AT(5,v2_1%+3);v5_6$(v2_3%);"    ";
  312.       @vB_D(v2_3%,v2_1%)
  313.     ENDIF
  314.     IF v0_4#=0 THEN
  315.       IF v2_0%<=0
  316.         v2_0%=0
  317.       ENDIF
  318.       @vB_F
  319.       PRINT AT(5+v2_0%-1,v2_1%+3);MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1);
  320.       IF v2_0%=0
  321.         PRINT AT(4,v2_1%+3);" ";
  322.       ENDIF
  323.       IF v1_7$="ü" OR v1_7$="ê" OR MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1)="Ç" THEN
  324.         v0_9#=0
  325.         IF v1_7$="ê" THEN
  326.           v0_9#=8
  327.         ENDIF
  328.         IF v1_7$="ü" THEN
  329.           v0_9#=1
  330.         ENDIF
  331.         DEFTEXT 1,v0_9#,0,6
  332.         TEXT 8*(v2_0%-2)+40,(8*v2_1%+22),MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1)
  333.         v1_8$=MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1)
  334.         IF v1_8$="Ç" OR v1_8$="ê" OR v1_8$="ü" THEN
  335.           DEFTEXT 1,0,0,6
  336.           TEXT 8*(v2_0%-2)+40,(8*v2_1%+22),MID$(v5_6$(v2_3%),v2_0%+2*v0_7#-2,1)
  337.         ENDIF
  338.         IF v2_0%=0
  339.           PRINT AT(4,v2_1%+3);" ";
  340.         ENDIF
  341.       ENDIF
  342.     ENDIF
  343.   ENDIF
  344.   IF v2_0%>v0_3#+2
  345.     v2_0%=v0_3#+2
  346.   ENDIF
  347.   IF v2_3%>0 AND v2_1%=22
  348.     @vB_8
  349.   ENDIF
  350.   v0_13#=0
  351.   IF v2_1%=-1
  352.     @vB_10
  353.   ENDIF
  354.   GET 8*v2_0%+32,(8*v2_1%+16),8*v2_0%+39,8*v2_1%+23,v1_1$
  355.   PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,10
  356.   IF v0_15#<v2_3%
  357.     v0_15#=v2_3%+1
  358.   ENDIF
  359.   IF v0_15#>v0_2#-3
  360.     v0_15#=v0_2#-3
  361.     FOR v2_4%=1 TO 2
  362.       v5_6$(v0_2#-3+v2_4%)=""
  363.     NEXT v2_4%
  364.   ENDIF
  365.   CLR v0_11#,v0_14#,v1_6$,v0_A#
  366.   v0_16#=v0_3#
  367.   IF INSTR(v5_6$(v2_3%),"י")
  368.     WHILE MID$(v5_6$(v2_3%),v0_14#,1)="י"
  369.       ADD v0_14#,1
  370.     WEND
  371.     IF v0_14#>0
  372.       SUB v0_14#,1
  373.       v1_6$=STRING$(v0_14#,"י")
  374.       v0_16#=v0_3#-v0_14#
  375.     ENDIF
  376.     IF MID$(v5_6$(v2_3%),v2_0%,1)="י"
  377.       GET 8*v2_0%+32,(8*v2_1%+16),8*v2_0%+39,8*v2_1%+23,v1_1$
  378.       PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,10
  379.       v2_0%=v0_14#
  380.       GET 8*v2_0%+32,(8*v2_1%+16),8*v2_0%+39,8*v2_1%+23,v1_1$
  381.       PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,10
  382.     ENDIF
  383.     PRINT AT(5,v2_1%+3);STRING$(v0_14#," ");
  384.   ENDIF
  385.   IF v2_3%>v0_2#-3
  386.     ALERT 1,"Nur noch ~ 3 Zeilen möglich ",1," owe ",v0_0#
  387.   ENDIF
  388. RETURN
  389. PROCEDURE vB_3
  390.   @vB_4(v2_3%)
  391.   v5_5$(v2_0%)=""
  392.   GET 8*v2_0%+32,(8*v2_1%+16),8*v2_0%+39,8*v2_1%+23,v1_1$
  393.   PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,10
  394.   '
  395.   ' .....linker Pfeil(75):
  396.   '
  397.   IF v0_6#=75 AND (v2_0%>0+v0_14# OR v2_3%>0)
  398.     IF v2_0%>0 AND v2_0%>v0_14#
  399.       SUB v2_0%,1
  400.     ELSE
  401.       @vB_E(v2_3%)
  402.       IF v0_1B#>v2_3% AND v0_1C#<=v2_3%
  403.         @vB_26
  404.       ENDIF
  405.       SUB v2_3%,1
  406.       SUB v2_1%,1
  407.       @vB_A(v5_6$(v2_3%))
  408.       v2_0%=LEN(v5_6$(v2_3%))-2*v0_8#
  409.       IF RIGHT$(v5_6$(v2_3%),1)=CHR$(174) OR ASC(RIGHT$(v5_6$(v2_3%),3))=174
  410.         v2_0%=LEN(v5_6$(v2_3%))-2*v0_8#-1
  411.       ENDIF
  412.       IF v2_0%>=v0_3#+1
  413.         v2_0%=v0_3#+1
  414.       ENDIF
  415.     ENDIF
  416.   ENDIF
  417.   ' ........Pfeil runter(80)
  418.   IF v0_6#=80
  419.     @vB_E(v2_3%)
  420.     IF v0_1B#>v2_3% AND v0_1C#<=v2_3%
  421.       @vB_26
  422.     ENDIF
  423.     ADD v2_3%,1
  424.     ADD v2_1%,1
  425.     @vB_4(v2_3%)
  426.     IF LEN(v5_6$(v2_3%))-2*v0_7#>v2_0%
  427.     ELSE
  428.       '      @Finder(Zei$(Z%))
  429.       v2_0%=LEN(v5_6$(v2_3%))-2*v0_7#
  430.       IF RIGHT$(v5_6$(v2_3%),1)=CHR$(174) OR ASC(RIGHT$(v5_6$(v2_3%),3))=174
  431.         v2_0%=LEN(v5_6$(v2_3%))-2*v0_7#-1
  432.       ENDIF
  433.     ENDIF
  434.   ENDIF
  435.   ' ......Pfeil hoch(72)
  436.   IF v0_6#=72 AND v2_3%>0
  437.     @vB_E(v2_3%)
  438.     IF v0_1B#>v2_3% AND v0_1C#<=v2_3%
  439.       @vB_26
  440.     ENDIF
  441.     SUB v2_3%,1
  442.     SUB v2_1%,1
  443.     @vB_4(v2_3%)
  444.     IF LEN(v5_6$(v2_3%))-2*v0_7#>v2_0%
  445.     ELSE
  446.       '      @Finder(Zei$(Z%))
  447.       v2_0%=LEN(v5_6$(v2_3%))-2*v0_7#
  448.       '      U%=Len(Zei$(Z%))-2*X
  449.       IF RIGHT$(v5_6$(v2_3%),1)=CHR$(174) OR ASC(RIGHT$(v5_6$(v2_3%),3))=174
  450.         v2_0%=LEN(v5_6$(v2_3%))-2*v0_7#-1
  451.       ENDIF
  452.       IF v2_0%>=v0_3#+1
  453.         v2_0%=v0_3#
  454.         v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_3#)
  455.       ENDIF
  456.     ENDIF
  457.   ENDIF
  458.   ' ......rechter Pfeil(77)
  459.   IF v0_6#=77 AND v2_0%+2*v0_7#<=LEN(v5_6$(v2_3%))
  460.     ADD v2_0%,1
  461.     IF (v2_0%+2*v0_7#>LEN(v5_6$(v2_3%))) OR (v2_0%=LEN(v5_6$(v2_3%))-2*v0_7# AND RIGHT$(v5_6$(v2_3%),1)=CHR$(174)) OR v2_0%=v0_3#+2 OR (ASC(RIGHT$(v5_6$(v2_3%),3))=174 AND v2_0%=LEN(v5_6$(v2_3%))-2*v0_7#-2)
  462.       @vB_E(v2_3%)
  463.       IF v0_1B#>v2_3% AND v0_1C#<=v2_3%
  464.         @vB_26
  465.       ENDIF
  466.       ADD v2_3%,1
  467.       ADD v2_1%,1
  468.       v2_0%=0
  469.     ENDIF
  470.   ENDIF
  471.   ' ...TAB(2336)
  472.   IF v0_6#=2336
  473.     @vB_A(v5_6$(v2_3%))
  474.     IF LEN(v5_6$(v2_3%))-2*v0_8#<v0_3#-6 THEN
  475.       IF LEN(v5_6$(v2_3%))=>v2_0%+2*v0_7#
  476.         v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#))
  477.       ENDIF
  478.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+" "+"        "+v1_5$
  479.       IF LEN(v5_6$(v2_3%))-2*v0_8#>v0_3#+2
  480.         v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_3#+2)
  481.       ENDIF
  482.       PRINT AT(5,v2_1%+3);USING "&",v5_6$(v2_3%);
  483.       @vB_D(v2_3%,v2_1%)
  484.       v1_5$=""
  485.       v2_0%=v2_0%+9
  486.       IF v2_0%>v0_3#
  487.         v2_0%=v0_3#
  488.       ENDIF
  489.     ENDIF
  490.   ENDIF
  491.   ' .....................insert(82)
  492.   IF v0_6#=82
  493.     DEFTEXT 1,2,0,6
  494.     IF v0_4#=1 THEN
  495.       TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+"Ov"
  496.       v0_4#=0
  497.       v1_3$="Overwrite - mode"
  498.     ELSE
  499.       TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+"In"
  500.       v0_4#=1
  501.       v1_3$="Insert - mode"
  502.     ENDIF
  503.   ENDIF
  504.   ' ......................UNDO(97)
  505.   IF v0_6#=97
  506.     IF v0_17#=1
  507.       SETCOLOR 0,104*80*230
  508.       SETCOLOR 3,30*1910
  509.       v0_17#=0
  510.     ELSE
  511.       SETCOLOR 0,1900
  512.       SETCOLOR 3,0
  513.       v0_17#=1
  514.     ENDIF
  515.   ENDIF
  516.   ' ......................BACKSPACE(2080)
  517.   IF v0_6#=2080
  518.     @vB_F
  519.     IF v2_0%>0 AND (v1_7$="ê" OR v1_7$="ü" OR v1_7$="Ç") AND v2_5%=v2_0%+2*v0_7#-1
  520.       v0_18#=v2_0%-2
  521.       v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v0_18#+2*v0_7#))
  522.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_18#+2*v0_7#-1)+v1_5$
  523.       v1_5$=""
  524.       PRINT AT(5,v2_1%+3);v5_6$(v2_3%);" ";
  525.       @vB_D(v2_3%,v2_1%)
  526.       SUB v2_0%,1
  527.     ELSE
  528.       IF v2_0%>0 AND MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,2)<>"ê" AND MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,2)<>"ü"
  529.         IF LEN(v5_6$(v2_3%))>v2_0%+2*v0_7#
  530.           v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#))
  531.         ENDIF
  532.         v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#-1)+v1_5$
  533.         GET 8*v2_0%+32,(8*v2_1%+16),620,8*v2_1%+23,v1_1$
  534.         v1_5$=""
  535.         PUT 8*v2_0%+24,(8*v2_1%+16),v1_1$,3
  536.         v2_0%=v2_0%-1
  537.       ENDIF
  538.     ENDIF
  539.     IF INSTR(v5_6$(v2_3%),CHR$(27))>1
  540.       FOR v2_6%=0 TO LEN(v5_6$(v2_3%))
  541.         v0_B#=INSTR(v5_6$(v2_3%),CHR$(27),v2_6%)
  542.         IF v0_B#>1
  543.           IF ASC(MID$(v5_6$(v2_3%),v0_B#+1,1))<127
  544.             v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_B#-1)+MID$(v5_6$(v2_3%),v0_B#+1)
  545.           ENDIF
  546.           v2_6%=v0_B#
  547.         ENDIF
  548.       NEXT v2_6%
  549.     ENDIF
  550.     @vB_11(v2_3%)
  551.     @vB_12(v2_3%)
  552.     @vB_4(v2_3%)
  553.   ENDIF
  554.   ' ......DEL(32544)
  555.   IF v0_6#=32544
  556.     IF LEN(v5_6$(v2_3%))>v2_0%+2*v0_7#
  557.       v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#)-1)
  558.     ENDIF
  559.     v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+v1_5$
  560.     GET 8*v2_0%+40,(8*v2_1%+16),620,8*v2_1%+23,v1_1$
  561.     v1_5$=""
  562.     PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,3
  563.     v1_5$=""
  564.     IF INSTR(v5_6$(v2_3%),CHR$(27))
  565.       @vB_13(v2_3%)
  566.       @vB_14(v2_3%)
  567.       @vB_12(v2_3%)
  568.       @vB_4(v2_3%)
  569.     ENDIF
  570.   ENDIF
  571.   ' ............ CLRHOME (71)
  572.   IF v0_6#=71 ! OR cv=119
  573.     @vB_11(v2_3%)
  574.     @vB_E(v2_3%)
  575.     v2_0%=0
  576.     v2_1%=0
  577.     v2_3%=0
  578.     @vB_C
  579.   ENDIF
  580.   ' ............ctrl-clrhome
  581.   IF v0_6#=119
  582.     DEFFILL 1,2,18                       !
  583.     GRAPHMODE 2
  584.     PBOX 3,1,634,196
  585.     GRAPHMODE 1                         ! bis hier altes Bild dunkel
  586.     DEFFILL 1,2,18
  587.     PBOX 50,10,360,5+(5.5*v2_2%+20)/2
  588.     DEFFILL 0
  589.     v0_5D#=(v2_3%+v2_2%) DIV v2_2%
  590.     DO
  591.       PBOX 53,12,357,4+(5.5*v2_2%+20)/2
  592.       DEFTEXT 1,0,0,4
  593.       FOR v2_4%=0 TO v2_2%-1
  594.         v5_C$(v2_4%)=v5_6$((v0_5D#-1)*v2_2%+v2_4%)
  595.         @vB_3C(v2_4%)
  596.         TEXT 65,16+v2_4%*2.75,LEN(v5_C$(v2_4%))*4,v5_C$(v2_4%)
  597.       NEXT v2_4%
  598.       DEFTEXT 1,0,0,6
  599.       v1_1B$="Seite : "+STR$(v0_5D#)
  600.       PBOX 365,22,470,80
  601.       TEXT 365,37,v1_1B$
  602.       TEXT 365,67," ⇧ or ⇩ or  "
  603.       REPEAT
  604.         v1_D$=INKEY$
  605.       UNTIL CVI(v1_D$+" ")=72 OR (CVI(v1_D$+" ")=80 AND v0_5D#>1) OR v1_D$=CHR$(27)
  606.       IF CVI(v1_D$+" ")=72 AND v0_5D#*v2_2%<v0_2#-3-v2_2%
  607.         ADD v0_5D#,1
  608.       ENDIF
  609.       IF CVI(v1_D$+" ")=80 AND v0_5D#>1
  610.         SUB v0_5D#,1
  611.       ENDIF
  612.       IF v1_D$=CHR$(27)
  613.         CLS
  614.         DEFFILL 0
  615.         BOX 3,13,634,196
  616.         BOX 3,1,634,196
  617.         DEFTEXT 1,2,0,6
  618.         TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+LEFT$(v1_3$,2)
  619.         @vB_C
  620.       ENDIF
  621.     LOOP UNTIL v1_D$=CHR$(27)
  622.   ENDIF
  623.   ' ..............help(98)
  624.   IF v0_6#=98
  625.     ' ''''''''''''''''''''''''
  626.     DEFFILL 1,2,18                      !
  627.     GRAPHMODE 2
  628.     PBOX 3,1,634,196
  629.     GRAPHMODE 1                         ! bis hier altes Bild dunkel
  630.     DEFFILL 0
  631.     DEFLINE 1
  632.     BOX 48,8,362,172
  633.     PBOX 50,10,360,170
  634.     DEFFILL 0
  635.     TEXT 62,28," Tastenbelegung in PD_TEXT: "
  636.     ' ''''''''''''''''
  637.     RESTORE vA_2
  638.     DEFTEXT 1,0,0,6
  639.   vA_2:
  640.     DATA "Load File -F1","Save File -Sh_F1","Scroll << -F2","Scroll >> -F3"
  641.     DATA "Normal    -F4","g.Z. norm -Sh_F4","Unterstr. -F5","Fett      -Sh_F5"
  642.     DATA "Z. lösch. -F6","Drucken   -F7","Position  -Sh_F7","Rechner   -F8","KARTEI    -Sh_F8","Einrück.  -F9"
  643.     DATA "Form. -F10/-Sh_F10","minis.   -^clrh"
  644.     DATA "Drucker  -^d","hell/d.  -undo","txtanf.  -clrh.","txtende  -^z","new      -^n"
  645.     DATA "quit     -^q","Overw/Ins-insert"
  646.     DATA "Lin.änd. -^l","Seitenl. -^s","Blockop. -^b","find/ers. ^f",".***"
  647.     FOR v0_19#=1 TO 15
  648.       READ v1_9$
  649.       EXIT IF v1_9$=".***"
  650.       TEXT 62,40+v0_19#*8,v1_9$
  651.     NEXT v0_19#
  652.     FOR v0_19#=16 TO 30
  653.       READ v1_9$
  654.       EXIT IF v1_9$=".***"
  655.       TEXT 222,+40+(v0_19#-15)*8,v1_9$
  656.     NEXT v0_19#
  657.     RESTORE vA_2
  658.     v1_A$="Kapazität : "+STR$(INT(v0_2#/v2_2%))+" S."
  659.     DEFTEXT 1,2,0,6
  660.     TEXT 222,+40+(v0_19#-13)*8,v1_A$
  661.     REPEAT
  662.     UNTIL INKEY$<>""
  663.     DEFLINE 0
  664.     CLS
  665.     DEFFILL 0
  666.     BOX 3,13,634,196
  667.     BOX 3,1,634,196
  668.     DEFTEXT 1,2,0,6
  669.     TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+LEFT$(v1_3$,2)
  670.     @vB_C
  671.   ENDIF
  672.   ' ......RETURN(chr$(13))
  673.   IF v0_6#=3360
  674.     v0_1A#=v0_1B#-v0_1C#
  675.     IF v0_1A#>0 AND v0_1C#>v2_3%
  676.       ADD v0_1C#,1
  677.       ADD v0_1B#,1
  678.     ENDIF
  679.     v5_5$(v2_0%)=CHR$(174)
  680.     IF v2_1%=0
  681.       PRINT AT(3,3);" ";
  682.     ENDIF
  683.     PRINT AT(5,v2_1%+3);SPC(70);
  684.     IF v2_1%<22
  685.       BMOVE v2_19%+2400+v2_1%*1280,v2_19%+3680+v2_1%*1280,27120-v2_1%*1280
  686.       PBOX 32,192,622,194
  687.     ENDIF
  688.     PRINT AT(5,v2_1%+3);v5_6$(v2_3%);
  689.     @vB_D(v2_3%,v2_1%)
  690.     @vB_9(v2_3%,v2_1%)
  691.     IF v2_1%=0
  692.       PRINT AT(3,3);"¯";
  693.     ENDIF
  694.     ' IF y%=21
  695.     ' PBOX 15,377/2,24,388/2
  696.     '  ENDIF
  697.     FOR v2_A%=v0_15#+1 TO v2_3%+1 STEP -1
  698.       v5_6$(v2_A%+1)=v5_6$(v2_A%)
  699.     NEXT v2_A%
  700.     v5_6$(v2_3%+1)=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#))
  701.     v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+v5_5$(v2_0%)
  702.     PRINT AT(5+v2_0%,v2_1%+3);CHR$(174);SPC(72-v2_0%);
  703.     IF v2_1%<21
  704.       PRINT AT(5,v2_1%+4);SPC(70);
  705.       PRINT AT(5,v2_1%+4);v5_6$(v2_3%+1);
  706.       @vB_D(v2_3%+1,v2_1%+1) DIV 
  707.       @vB_E(v2_3%)
  708.     ENDIF
  709.     IF v0_1B#>v2_3% AND v0_1C#=<v2_3%
  710.       ADD v0_1B#,1
  711.       @vB_26
  712.     ENDIF
  713.     ADD v2_3%,1
  714.     ADD v2_1%,1
  715.     ADD v0_15#,1
  716.     v2_0%=0
  717.   ENDIF
  718.   ' .........ctrl-d
  719.   IF v0_6#=1056
  720.     PRINT CHR$(7);
  721.     PAUSE 15
  722.     WAVE 7,7,0,0,0
  723.     v5_8$(0)=" DESK "
  724.     v5_8$(1)=" Text bearbeiten "
  725.     v5_8$(2)="--------------------"
  726.     v5_8$(3)="1"
  727.     v5_8$(4)="2"
  728.     v5_8$(5)="3"
  729.     v5_8$(6)="4"
  730.     v5_8$(7)="5"
  731.     v5_8$(8)="6"
  732.     v5_8$(9)=""
  733.     v5_8$(10)="  DRUCKER  "
  734.     v5_8$(11)="- "+v1_4A$+" -"
  735.     v5_8$(12)="------------"
  736.     v5_8$(13)="ä :"+v5_B$(1)
  737.     v5_8$(14)="ü :"+v5_B$(2)
  738.     v5_8$(15)="ö :"+v5_B$(3)
  739.     v5_8$(16)="Ä :"+v5_B$(4)
  740.     v5_8$(17)="Ü :"+v5_B$(5)
  741.     v5_8$(18)="Ö :"+v5_B$(6)
  742.     v5_8$(19)="ß :"+v5_B$(7)
  743.     v5_8$(20)="§ :"+v5_B$(8)
  744.     v5_8$(21)="------------"
  745.     v5_8$(22)="F :"+v5_B$(10)
  746.     v5_8$(23)="U :"+v5_B$(11)
  747.     v5_8$(24)="N :"+v5_B$(12)
  748.     v5_8$(25)="------------"
  749.     v5_8$(26)="Speichern"
  750.     v5_8$(27)="Neu laden"
  751.     v5_8$(28)=""
  752.     DEFFILL 1,2,18
  753.     GRAPHMODE 2
  754.     PBOX 3,1,634,196
  755.     GRAPHMODE 1
  756.     GET 175,0,639,28,v1_B$
  757.     GET 0,0,15,18,v1_C$
  758.     MENU v5_8$()
  759.     PUT 175,0,v1_B$
  760.     PUT 0,0,v1_C$
  761.     LINE 16,0,16,18/2
  762.     LINE 175,0,175,18/2
  763.     LINE 16,0,175,0
  764.     GRAPHMODE 1
  765.     ON MENU
  766.     WHILE MENU(0)<>1
  767.       ON MENU
  768.       ON MENU GOSUB vB_36
  769.     WEND
  770.     HIDEM
  771.     CLS
  772.     DEFFILL 0
  773.     BOX 3,13,634,196
  774.     BOX 3,1,634,196
  775.     DEFTEXT 1,2,0,6
  776.     TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+LEFT$(v1_3$,2)
  777.     @vB_C
  778.   ENDIF
  779.   ' ................ctr-B(544)
  780.   IF v0_6#=544
  781.     @vB_11(v2_3%)
  782.     @vB_E(v2_3%)
  783.     @vB_15
  784.   ENDIF
  785.   ' ................ctrl-n or ctrl-q
  786.   IF v0_6#=3616
  787.     ALERT 1,"ctrl-n: Text insgesamt löschen",1," ja | nein ",v0_0#
  788.     IF v0_0#=1
  789.       FOR v2_7%=0 TO v0_2#
  790.         v5_6$(v2_7%)=""
  791.         v5_7$(v2_7%)=""
  792.         v0_15#=1
  793.       NEXT v2_7%
  794.       PBOX 15,14,630,194
  795.       CLR v2_3%,v2_1%,v2_0%,v0_1C#,v0_1B#
  796.     ENDIF
  797.   ENDIF
  798.   IF v0_6#=4384
  799.     ALERT 3,"ctrl-q: Textprogramm verlassen",1," ja | nein ",v0_0#
  800.     IF v0_0#=1
  801.       SYSTEM
  802.     ENDIF
  803.   ENDIF
  804.   ' .........ctrl-L(3104)
  805.   IF v0_6#=3104
  806.     DEFTEXT 1,1,0,6
  807.     ATEXT 32,4,1,"["+STRING$(v0_3#,".")+"]"+"  "
  808.     REPEAT
  809.       ATEXT 8*v0_3#+48,4,1," "+CHR$(174)
  810.       REPEAT
  811.         v1_D$=INKEY$
  812.       UNTIL v1_D$<>""
  813.       WHILE LEN(INKEY$)>0
  814.       WEND
  815.       IF CVI(v1_D$+" ")=75 AND v0_3#>20
  816.         v0_3#=v0_3#-1
  817.       ENDIF
  818.       IF CVI(v1_D$+" ")=77 AND v0_3#<70
  819.         v0_3#=v0_3#+1
  820.       ENDIF
  821.       ATEXT 32,4,1,"["+STRING$(v0_3#,".")+"]"+"   "
  822.     UNTIL v1_D$=CHR$(13)
  823.     DEFTEXT 1,2,0,6
  824.     TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+LEFT$(v1_3$,2)
  825.   ENDIF
  826.   ' .................ctrl-F
  827.   IF v0_6#=1568
  828.     @vB_11(v2_3%)
  829.     @vB_E(v2_3%)
  830.     DEFLINE 1,3
  831.     PBOX 252,242/2,588,368/2
  832.     BOX 250,240/2,590,370/2
  833.     PRINT AT(36,17);"find: "
  834.     PRINT AT(42,18);STRING$(26,CHR$(255));
  835.     PRINT AT(42,17);
  836.     FORM INPUT 25,v1_E$
  837.     PRINT AT(34,20);"replace: "
  838.     PRINT AT(43,21);STRING$(25,CHR$(255))
  839.     PRINT AT(43,20);
  840.     FORM INPUT 25,v1_F$
  841.     DEFTEXT 1,1,0,6
  842.     TEXT 32,10,"    [  "+"ctrl-r = replace ,      ctrl-f = find next ,     esc = end"+"   ]      "
  843.     v0_1E#=0
  844.     FOR v0_1D#=v2_3% TO v0_15#+100
  845.       EXIT IF v0_1D#=>v0_2# OR v1_E$=""
  846.       IF INSTR(v0_1E#,v5_6$(v0_1D#),v1_E$)
  847.         PRINT CHR$(7);
  848.         PAUSE 15
  849.         WAVE 7,7,0,0,0
  850.         IF v0_1D#>5
  851.           v2_1%=5
  852.         ELSE
  853.           v2_1%=v0_1D#
  854.         ENDIF
  855.         v2_3%=v0_1D#
  856.         @vB_C
  857.         v2_0%=INSTR(v0_1E#,v5_6$(v0_1D#),v1_E$)-1
  858.         @vB_16(v0_1D#)
  859.         v2_0%=v2_0%-2*v0_7#
  860.         GET 8*v2_0%+32,(8*v2_1%+16),8*v2_0%+39,8*v2_1%+23,v1_1$
  861.         PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,10
  862.         REPEAT
  863.           v1_D$=INKEY$
  864.         UNTIL v1_D$=CHR$(6) OR v1_D$=CHR$(18) OR v1_D$=CHR$(27)
  865.         IF v1_D$=CHR$(27)
  866.           v0_1D#=v0_15#+100
  867.         ENDIF
  868.         IF v1_D$=CHR$(6)
  869.           IF LEN(v5_6$(v0_1D#))>LEN(v1_E$) AND INSTR(v2_0%+2+2*v0_7#,v5_6$(v0_1D#),v1_E$)
  870.             v0_1E#=v2_0%+2+2*v0_7#
  871.             v0_1D#=v0_1D#-1
  872.           ELSE
  873.             v0_1E#=0
  874.           ENDIF
  875.         ENDIF
  876.         IF v1_D$=CHR$(18) AND v1_F$<>""
  877.           v1_5$=MID$(v5_6$(v0_1D#),v2_0%+2*v0_7#+1+LEN(v1_E$))
  878.           v5_6$(v0_1D#)=LEFT$(v5_6$(v0_1D#),v2_0%+2*v0_7#)+v1_F$+v1_5$
  879.           v1_5$=""
  880.           @vB_A(v5_6$(v0_1D#))
  881.           IF LEN(v5_6$(v0_1D#))-2*v0_8#>v0_3#+2
  882.             v0_1F#=v0_1D#
  883.             v0_F#=v2_3%
  884.             v0_10#=v2_1%
  885.             v0_20#=v2_0%
  886.             v0_12#=1
  887.             IF v0_1D#>=v0_15#
  888.               @vB_17
  889.             ENDIF
  890.             @vB_B
  891.             v2_3%=v0_F#
  892.             v2_1%=v0_10#
  893.             v2_0%=v0_20#
  894.             v0_1D#=v0_1F#
  895.           ENDIF
  896.           IF LEN(v5_6$(v0_1D#))>LEN(v1_E$) AND INSTR(v2_0%+1+2*v0_7#+LEN(v1_F$),v5_6$(v0_1D#),v1_E$)
  897.             v0_1E#=v2_0%+1+2*v0_7#+LEN(v1_F$)
  898.             v0_1D#=v0_1D#-1
  899.           ELSE
  900.             v0_1E#=0
  901.           ENDIF
  902.         ENDIF
  903.       ENDIF
  904.     NEXT v0_1D#
  905.     IF v1_D$=CHR$(27)
  906.       GET 8*v2_0%+32,(8*v2_1%+16),8*v2_0%+39,8*v2_1%+23,v1_1$
  907.       PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,10
  908.     ENDIF
  909.     PBOX 6,3,630,12
  910.     DEFTEXT 1,2,0,6
  911.     TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+LEFT$(v1_3$,2)
  912.     IF v1_D$<>CHR$(27) AND v1_E$<>""
  913.       @vB_17
  914.       v2_3%=v0_15#
  915.       v2_0%=0
  916.       v2_1%=17
  917.       IF v0_15#<17
  918.         v2_1%=v0_15#
  919.       ENDIF
  920.       FOR v0_5#=1 TO 3
  921.         SOUND 1,15,2*v0_5#,3,8
  922.       NEXT v0_5#
  923.       WAVE 7,7,0,0,0
  924.     ENDIF
  925.     @vB_C
  926.   ENDIF
  927.   ' ......ctrl-s
  928.   IF v0_6#=4896
  929.     GET 100,100/2,210,180/2,v1_2$
  930.     DEFFILL 1,2,15
  931.     PBOX 100,100/2,210,180/2
  932.     PRINT AT(15,8);"Seitenlänge"
  933.     PRINT AT(19,10);v2_2%;
  934.     DEFTEXT 1,1,0,6
  935.     TEXT 125,155/2,CHR$(2)
  936.     TEXT 170,155/2,CHR$(1)
  937.     REPEAT
  938.       REPEAT
  939.         v1_D$=INKEY$
  940.       UNTIL v1_D$<>""
  941.       IF CVI(v1_D$+" ")=72 AND v2_2%>25
  942.         v2_2%=v2_2%-1
  943.       ENDIF
  944.       IF CVI(v1_D$+" ")=80 AND v2_2%<66
  945.         v2_2%=v2_2%+1
  946.       ENDIF
  947.       PRINT AT(19,10);"  ";
  948.       PRINT AT(19,10);v2_2%;
  949.     UNTIL v1_D$=CHR$(13)
  950.     PUT 100,100/2,v1_2$
  951.     DEFFILL 0
  952.     PBOX 12,32,25,194
  953.   ENDIF
  954.   ' .......ctrl-Z
  955.   IF v0_6#=6688
  956.     @vB_11(v2_3%)
  957.     @vB_E(v2_3%)
  958.     v2_8%=v0_15#+100
  959.     IF v2_8%>v0_2#-1
  960.       v2_8%=v0_2#-1
  961.     ENDIF
  962.     WHILE v5_6$(v2_8%)=""
  963.       SUB v2_8%,1
  964.       EXIT IF v2_8%=0
  965.     WEND
  966.     v2_8%=v2_8%+1
  967.     v2_3%=v2_8%-11
  968.     IF v2_3%<=0
  969.       v2_3%=0
  970.     ENDIF
  971.     v2_1%=0
  972.     @vB_C
  973.     IF v2_8%>11
  974.       v2_3%=v2_3%+11
  975.       v2_1%=11
  976.     ELSE
  977.       v2_3%=v2_3%+v2_8%
  978.       v2_1%=v2_1%+v2_8%
  979.     ENDIF
  980.     v2_0%=0
  981.     v0_15#=v2_8%
  982.   ENDIF
  983.   ' ..........esc(6944)
  984.   IF v0_6#=6944
  985.     CLS
  986.     DEFFILL 0
  987.     BOX 3,13,634,196
  988.     BOX 3,1,634,196
  989.     DEFTEXT 1,2,0,6
  990.     TEXT 32,10,"["+STRING$(v0_3#,".")+"]"+LEFT$(v1_3$,2)
  991.     @vB_C
  992.   ENDIF
  993.   ' ..........F1(59)
  994.   IF v0_6#=59
  995.     GET 8*v2_0%+32,(8*v2_1%+16),8*v2_0%+39,8*v2_1%+23,v1_1$
  996.     PUT 8*v2_0%+32,(8*v2_1%+16),v1_1$,10
  997.     DEFFILL 1,2,2
  998.     PBOX 156,17,482,27
  999.     DEFTEXT 1,0,0,6
  1000.     TEXT 280,24,"load File"
  1001.     DEFFILL 0
  1002.     SETMOUSE 316,190
  1003.     FILESELECT "\*.*","",v1_10$
  1004.     ON ERROR
  1005.     IF EXIST(v1_10$)
  1006.       OPEN "I",#1,v1_10$
  1007.       RECALL #1,v5_7$(),v0_2#-v2_3%,v2_9%
  1008.       CLOSE
  1009.       v0_21#=v2_9%
  1010.       @vB_17
  1011.       IF v0_15#+v0_21#=>v0_2#
  1012.         v0_21#=v0_2#-1-v0_15#
  1013.       ENDIF
  1014.       FOR v0_22#=0 TO v0_21#
  1015.         IF LEN(v5_7$(v0_22#))>72
  1016.           @vB_A(v5_7$(v0_22#))
  1017.           v5_7$(v0_22#)=LEFT$(v5_7$(v0_22#),72+2*v0_8#)
  1018.         ENDIF
  1019.       NEXT v0_22#
  1020.       IF v0_15#>1
  1021.         FOR v2_A%=v0_15#+1 TO v2_3% STEP -1
  1022.           v5_6$(v2_A%+v0_21#+1)=v5_6$(v2_A%)
  1023.         NEXT v2_A%
  1024.       ENDIF
  1025.       FOR v2_A%=0 TO v0_21#
  1026.         v5_6$(v2_3%+v2_A%)=v5_7$(v2_A%)
  1027.       NEXT v2_A%
  1028.       v0_15#=v0_15#+v0_21#
  1029.     ENDIF
  1030.     PBOX 15,14,622,194
  1031.     SETMOUSE 1,1
  1032.     @vB_C
  1033.   ENDIF
  1034.   ' ......Sh_F1(84)
  1035.   IF v0_6#=84
  1036.     DEFFILL 1,2,2
  1037.     GET 156,17,482,27,v1_B$
  1038.     PBOX 156,17,482,27
  1039.     DEFTEXT 1,0,0,6
  1040.     TEXT 280,24,"save File"
  1041.     DEFFILL 0
  1042.     ON ERROR GOSUB vB_40
  1043.     IF DFREE(0)>v0_15#*115 THEN
  1044.       '      Print At(1,1);Dfree(0)
  1045.       SETMOUSE 316,190
  1046.       FILESELECT "\*.*",v1_11$,v1_10$
  1047.       IF LEN(v1_10$)>1 AND RIGHT$(v1_10$)<>"\"
  1048.         @vB_17
  1049.         OPEN "O",#1,v1_10$
  1050.         STORE #1,v5_6$(),v0_15#
  1051.         CLOSE
  1052.       ELSE
  1053.         @vB_C
  1054.       ENDIF
  1055.       PUT 156,17,v1_B$
  1056.     ELSE
  1057.       ALERT 1,"Sorry,|Diskette voll ",1," nun gut ",v0_0#
  1058.       @vB_C
  1059.     ENDIF
  1060.     SETMOUSE 1,1
  1061.     ON ERROR
  1062.   ENDIF
  1063.   ' '''''''''''''''''''                SROLL runter (F3)
  1064.   IF v0_6#=61
  1065.     @vB_17
  1066.     DO WHILE v0_15#>v2_1%+1 AND (v0_15#>v2_3%+1) IMP 
  1067.       BMOVE v2_19%+3600,v2_19%+2320,27120
  1068.       PRINT AT(3,24);" ";
  1069.       '  PBOX 32,14,622,15
  1070.       PBOX 32,368/2,622,194        ! untzerste Zeile frei
  1071.       ADD v2_3%,1
  1072.       IF v2_3%+21-v2_1%<v0_2#-3
  1073.         PRINT AT(5,21+3);v5_6$(v2_3%+21-v2_1%);
  1074.         @vB_9(v2_3%+21-v2_1%,21)
  1075.         @vB_27
  1076.         @vB_D(v2_3%+21-v2_1%,21)
  1077.       ENDIF
  1078.     LOOP UNTIL INKEY$<>"" OR v2_3%>=v0_15#-1
  1079.     ' @finder(zei$(z%))
  1080.     ' u%=LEN(zei$(z%))+2*fr
  1081.     v2_0%=0
  1082.     @vB_26
  1083.   ENDIF
  1084.   ' '''''''''''''''''''''  '                SCROLL rauf (F2)
  1085.   IF v0_6#=60
  1086.     DO WHILE v2_3%>v2_1%
  1087.       BMOVE v2_19%+2320,v2_19%+3600,27120
  1088.       PBOX 12,14,622,23
  1089.       ' PBOX 32,368/2,622,194        ! untzerste Zeile frei
  1090.       IF v2_3%>0
  1091.         SUB v2_3%,1
  1092.       ENDIF
  1093.       PRINT AT(5,3+0);v5_6$(v2_3%+0-v2_1%);
  1094.       @vB_9(v2_3%-v2_1%,0)
  1095.       @vB_27
  1096.       @vB_D(v2_3%-v2_1%,0)
  1097.     LOOP UNTIL INKEY$<>"" OR v2_3%=0+v2_1%
  1098.     '    PBOX 32,192,622,194
  1099.     v2_0%=0
  1100.     @vB_26
  1101.   ENDIF
  1102.   ' ........................F4(62)
  1103.   IF v0_6#=62
  1104.     v0_9#=0
  1105.     @vB_F
  1106.     @vB_4(v2_3%)
  1107.     IF (v1_7$="ê" OR v1_7$="ü") AND v2_5%=v2_0%+2*v0_7#-1
  1108.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_5%-1)+(v5_6$(v2_3%),v2_5%+2)
  1109.       @vB_4(v2_3%)
  1110.       v0_B#=INSTR(v5_6$(v2_3%),CHR$(27),v2_0%+2*v0_7#)
  1111.       v1_7$=MID$(v5_6$(v2_3%),v0_B#+1,1)
  1112.       IF v0_B#>0 AND v1_7$="Ç" AND v0_B#>v2_0%+2*v0_7#
  1113.         v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_B#-1)+MID$(v5_6$(v2_3%),v0_B#+2)
  1114.       ENDIF
  1115.       PRINT AT(5,v2_1%+3);v5_6$(v2_3%);
  1116.       @vB_D(v2_3%,v2_1%)
  1117.     ELSE
  1118.       @vB_11(v2_3%)
  1119.       @vB_E(v2_3%)
  1120.       @vB_F
  1121.       IF (v1_7$="ê" OR v1_7$="ü") AND v2_0%>v2_5%-2*v0_7#+1
  1122.         v5_5$(v2_0%)=CHR$(27)+"Ç"
  1123.         IF LEN(v5_6$(v2_3%))=>v2_0%
  1124.           v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#))
  1125.         ENDIF
  1126.         v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+v5_5$(v2_0%)+v1_5$
  1127.         v1_5$=""
  1128.         @vB_4(v2_3%)
  1129.         v0_B#=INSTR(v5_6$(v2_3%),CHR$(27),v2_0%+2*v0_7#)
  1130.         v1_7$=MID$(v5_6$(v2_3%),v0_B#+1,1)
  1131.         IF v0_B#>0 AND v1_7$="Ç" AND v0_B#>v2_0%+2*v0_7#
  1132.           v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_B#-1)+MID$(v5_6$(v2_3%),v0_B#+2)
  1133.         ENDIF
  1134.         PRINT AT(5,v2_1%+3);v5_6$(v2_3%);
  1135.         @vB_4(v2_3%)
  1136.         @vB_D(v2_3%,v2_1%)
  1137.       ELSE
  1138.         PRINT AT(23,23);CHR$(7)
  1139.         PAUSE 15
  1140.         WAVE 7,7,0,0,0
  1141.       ENDIF
  1142.     ENDIF
  1143.   ENDIF
  1144.   ' ......Sh_F4(87)
  1145.   IF v0_6#=87
  1146.     @vB_19
  1147.     PRINT AT(5,v2_1%+3);v5_6$(v2_3%);
  1148.   ENDIF
  1149.   ' .......F5(63)
  1150.   IF v0_6#=63
  1151.     @vB_11(v2_3%)
  1152.     @vB_F
  1153.     IF (v1_7$="ê" OR v1_7$="ü")
  1154.       PRINT AT(23,23);CHR$(7)
  1155.       PAUSE 15
  1156.       WAVE 7,7,0,0,0
  1157.       '
  1158.       v5_5$(v2_0%)=CHR$(27)+"Ç"
  1159.       IF LEN(v5_6$(v2_3%))=>v2_0%
  1160.         v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#))
  1161.       ENDIF
  1162.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+v5_5$(v2_0%)+v1_5$
  1163.       v1_5$=""
  1164.       '
  1165.       v0_B#=INSTR(v5_6$(v2_3%),CHR$(27),v2_0%+2*v0_7#+2)
  1166.       v1_7$=MID$(v5_6$(v2_3%),v0_B#+1,1)
  1167.       IF v0_B#>0 AND v1_7$="Ç" AND v0_B#>v2_0%+2*v0_7#
  1168.         v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_B#-1)+)v5_6$(v2_3%),v0_B#+2)
  1169.       ENDIF
  1170.       '
  1171.       @vB_11(v2_3%)
  1172.       @vB_E(v2_3%)
  1173.       PRINT AT(5,v2_1%+3);v5_6$(v2_3%);
  1174.       @vB_4(v2_3%)
  1175.       @vB_D(v2_3%,v2_1%)
  1176.       v0_9#=0
  1177.       '
  1178.     ELSE
  1179.       v5_5$(v2_0%)=CHR$(27)+"ê"
  1180.       IF LEN(v5_6$(v2_3%))=>v2_0%
  1181.         v1_5$=RIGHT$(v5_6$(v2_3%),LEN(v5_6$(v2_3%))-(v2_0%+2*v0_7#))
  1182.       ENDIF
  1183.       v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v2_0%+2*v0_7#)+v5_5$(v2_0%)+v1_5$
  1184.       v1_5$=""
  1185.       @vB_4(v2_3%)
  1186.       IF MID$(v5_6$(v2_3%),v2_0%+2*v0_7#,1)="Ç" THEN
  1187.         ALERT 1,"Geht nicht,|brauche mind ein norm. |Zeichen zwischen |versch. Textarten ",1," nun gut ",v0_0#
  1188.       ENDIF
  1189.       v0_B#=INSTR(v5_6$(v2_3%),CHR$(27),v2_0%+2*v0_7#)
  1190.       v1_7$=MID$(v5_6$(v2_3%),v0_B#+1,1)
  1191.       IF v0_B#>0 AND (v1_7$="ê" OR v1_7$="ü") AND v0_B#>v2_0%+2*v0_7#
  1192.         v5_6$(v2_3%)=LEFT$(v5_6$(v2_3%),v0_B#-1)+MID$( XOR +